home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir42 / genscr18.zip / VERSION.TXT < prev   
Text File  |  1994-01-11  |  28KB  |  641 lines

  1. GENSCRNX VERSION UPDATE LOG
  2.  
  3.  
  4.  
  5.                                  1.8
  6.                                 ------
  7.  
  8.  
  9. New:  *:PICTURE <expC>
  10.       Replaces object PICTURE clause with <expC>.  <expC> can be any 
  11.       character expression, including variable names or FoxPro functions.
  12.       Although *:PICTURE was available in version 1.7b, *:PICTURE can also
  13.       be used to create multi-state .BMP/.ICO pictures for check boxes,
  14.       radio buttons, and push buttons (Windows platform only).
  15.  
  16.  
  17.       Example:
  18.       To force a tri-state picture check box:
  19.       *:PICTURE erase01.ico,erase02.ico,clear.ico
  20.       
  21.       Example:
  22.       To force a dual-state picture check box without respecifying the
  23.       currently set off mode picture:
  24.       *:PICTURE ,fax2.ico
  25.  
  26.       Note:
  27.       If the first .BMP/.ICO file name in the comma separated list is left
  28.       out as in the above example, the picture current set by the screen
  29.       builder will be used as the off mode picture.  This way changing the
  30.       off mode picture can be done in the screen builder without having to
  31.       also change in the Comment snippet.
  32.  
  33. New:  Support for multiple *:FUNCTION/*:ENDFNCT text blocks in the Comment
  34.       snippet.
  35.  
  36. New:  {{@ <expC> }}
  37.       Retrieve a directive at compile time.  The @ that follows the open
  38.       braces is the command that performs a wordsearch() operation in the
  39.       Comment or Setup snippet searching for the directive specified by
  40.       <expC>.  {{@ <expC> }} can be included in the Comment snippet and the
  41.       file inserted can contain other GENSCRNX directives and also may contain
  42.       any {{<expC>}} expressions to be evaluated.
  43.  
  44.       Example:
  45.       If the following command was in the Valid snippet of a GET object that
  46.       had a *:IF m.p>5 in the Comment snippet:
  47.  
  48.       WAIT 'IF: {{@*:IF}}' WINDOW NOWAIT
  49.  
  50.       then the resulting code in the .SPR would be:
  51.  
  52.       WAIT 'IF: m.p>5' WINDOW NOWAIT
  53.  
  54.       Example:
  55.       If the following command was in the Comment snippet of an object:
  56.  
  57.       {{Button1::@*:IF}}
  58.  
  59.       then the object would use the *:IF directive specifed in an object
  60.       containing *:DEFOBJ Button1 in the Comment snippet.
  61.  
  62.       Example:
  63.       If the following command was in the Setup snippet of an object:
  64.  
  65.       *:SCXDRV5 3D
  66.       *:ALL3D {{MAIN.All3D_Setting::@*:ALL3D}}
  67.  
  68.       while a library MAIN contains an object called All3D_Setting that
  69.       contained *:ALL3D 4 in the Setup snippet then the 3D driver would
  70.       use a shadow of 4 pixels as the default for all 3D objects.  The
  71.       Setup snippet would result in the following:
  72.       
  73.       *:SCXDRV5 3D
  74.       *:ALL3D 4
  75.  
  76.       The above technique can be used to control default settings in a
  77.       globally to have muliptle screens use the same directive settings.
  78.  
  79. New:  *:IGNOREBRACES
  80.       Ignores all {{<expC>}} expressions.  *:IGNOREBRACES cam only be
  81.       declared in the Setup snippet and overrides *:BRACES and *:NOBRACES.
  82.  
  83.  
  84. New:  GENSCRNX now contains functions evlstr() AND evlmsg() to support the
  85.       modified evltxt() function.
  86.  
  87. Fix:  GENSCRNX sets CARRY OFF, DECIMALS TO 9, and NEAR TO OFF and restores
  88.       to original setting when complete.
  89.  
  90. Fix:  GENSCRNX properly generates #:SECTION 3 code after the GET m.scnend.
  91.  
  92. Fix:  GENSCRNX properly generates #:SECTION 3 for cross-platform screens.
  93.  
  94. Fix:  GENSCRNX properly generates a screen from a project when the screen
  95.       does not contain records of the current platform.
  96.  
  97. Fix:  GENSCRNX properly ignores text that follows *:INSTXT on the same line.
  98.  
  99. Fix:  GENSCRNX properly process *:INSTXT for two consecutive objects that
  100.       contain the *:INSTXT directive.  This fix will also include cases when
  101.       one object contained a *:INSTXT directive while the next object had
  102.       a 3D effect generated by the 3D driver that used *:INSTXT to insert a
  103.       procedure call to 3DBOX.PRG.
  104.  
  105. Fix:  DragDrop driver 1.2 can be used with a window of any font.  Versions
  106.       prior to version 1.2 required the window font of MS Sans Serif,8,N.
  107.       
  108. New:  *:FRAME3D [<expC>]
  109.  
  110.       Specify text using <expC> to be placed in the top left corner of a
  111.       box.  If *:3D is not specified for the box object, *:3D INSET will
  112.       automatically be used.  If the first character of <expC> is an @, the
  113.       following characters will be evaluated at runtime.
  114.  
  115.       Examples:
  116.  
  117.       To specify a 3D INSET box will frame text set to "Customer":
  118.       *:FRAME3D Customer
  119.  
  120.       To specify a 3D RAISED box with frame text set to "Invoice":
  121.       *:3D RAISED
  122.       *:FRAME3D Invoice
  123.  
  124.       To specify a 3D  INSET box with frame text set to a runtime variable
  125.       called m.myframe1:
  126.       *:FRAME3D @m.myframe1
  127.  
  128.  
  129. ---------------------------------------------------------------------------
  130.  
  131.  
  132.                                  1.7c
  133.                                 ------
  134.  
  135.  
  136. Fix:  GENSCRNX properly generates screens from project when a screen set
  137.       contains screens from different directories.
  138.  
  139. ---------------------------------------------------------------------------
  140.  
  141.  
  142.                                  1.7b
  143.                                 ------
  144.  
  145.  
  146. New:  *:PICTURE <expC>
  147.       Replaces object PICTURE clause with <expC>.  <expC> can be any 
  148.       character expression, including variable names or FoxPro functions.
  149.       
  150.       Example:
  151.       To force a data driven PICTURE clause for an object using a variable
  152.       called m.mypict, place the following in the Comment snippet:
  153.       *:PICTURE m.mypict
  154.       
  155. New:  *:REFRESH
  156.       Replaces object REFRESH clause with .T..  *:REFRESH will override the
  157.       refresh setting for a SAY object and can also be used to allow a
  158.       picture to be refreshed in the Read Level Show using either SHOW GETS
  159.       or SHOW GETS OFF.
  160.       Note:  Using both *:REFRESH and *:PICTURE <variable name> with a
  161.       picture from file object can allow picture fields to be refreshed at
  162.       runtime.
  163.       
  164. Fix:  GENSCRNX properly executes if SET DELETED is set to ON when
  165.       generating a screen.
  166.  
  167. Fix:  GENSCRNX enhanced to ensure drivers and preprocessing are executed
  168.       properly from a project.  Previously there were rare cases when the
  169.       3D.PRG driver was not properly adding the 3D effects when building
  170.       from a project.  GENSCRNX 1.7b contains added logic to prevent these
  171.       conditions from re-occuring.
  172.  
  173. ---------------------------------------------------------------------------
  174.  
  175.  
  176.                                  1.7a
  177.                                 ------
  178.  
  179.  
  180. New:  *:CLICK <function>
  181.       Adds invisible button with a WHEN snippet that calls the mouse click
  182.       function specified.  The () after the function name are only required
  183.       if parameters are passed.  In the Windows platform, *:CLICK supports
  184.       text, box, and picture objects while in the MS-DOS platform, *:CLICK
  185.       supports text and box objects. 
  186.       
  187.       Example:
  188.       To have a function called myfnct() exectuted from a mouse click on the
  189.       object, place the following in the Comment snippet:
  190.       *:CLICK myfnct
  191.       
  192. New:  GENSCRNX automatically creates two null invisible button at row,col 0,0
  193.       as the first and last GET in the Screen Layout.  Each screen of a screen
  194.       set will have two null invisible buttons with the name corresponding to the
  195.       screen set.  Since the invisible button's WHEN is set to .F., the objects
  196.       are null objects and have no effect on the generated screen.  The purpose
  197.       of this is to allow generic reference to the first or last GET object in
  198.       any screen of a screen set.  For example in a screen set with one screen,
  199.       the first GET would be m.scnobj1 and the last GET would be m.scnend1.
  200.       Example:
  201.       _CUROBJ=OBJNUM('m.scnobj1')
  202.  
  203.       Example:  The first GET of the first screen of a screen set would have
  204.       an invisible button at 0,0 called m.scnobj1 while the second screen of a
  205.       screen set would have an invisible button called m.scnobj2.
  206.  
  207. New:  *:SCNOBJ and *:NOSCNOBJ
  208.       *:SCNOBJ specified in the Setup snippet enables the invisible button
  209.       m.scnobjn above to be generated.  Although it is generated by default,
  210.       *:SCNOBJ can be used to override a SCNOBJ=OFF setting in the
  211.       CONFIG.FP/CONFIG.FPW files.
  212.       *:NOSCNOBJ specified in the Setup snippet disables the invisible button
  213.       m.scnobjn above to be generated.  *:NOSCNOBJ can be used to override a
  214.       SCNOBJ=ON setting in the CONFIG.FP/CONFIG.FPW files.
  215.       *:NOSCNOBJ is automatic when either the #NOREAD directive exists in
  216.       the Setup snippet or no GET objects exist for the screen.
  217.  
  218. Fix:  GENSCRNX properly handles the *:SIZE and *:NOSIZE directives for EDIT
  219.       objects.
  220.  
  221. Fix:  GENSCRNX enhanced to ensure drivers are executed properly from a project.
  222.       Previously there were rare cases when the 3D.PRG driver was not properly
  223.       adding the 3D effects when building from a project.  GENSCRNX 1.7a contains
  224.       added logic to prevent these conditions from re-occuring.
  225.  
  226. Fix:  GENSCRNX functions for updating object snippets like instxt1() and instxt2()
  227.       both act identical now.  Both functions will update the Comment snippet only
  228.       while GENSCRNX handles the updates automatically.  The reason both functions
  229.       where left in even thought they are identical is for backward compatibilty.
  230.       Existing drivers should not have to be updated and this is just knowledge
  231.       base information only.
  232.  
  233. Fix:  *:BASLIB and *:INCLIB are no longer case-sensitive when referencing a library
  234.       name.
  235.  
  236. New:  The wordsearch() function has been enhanced for improved performance when
  237.       parsing.  The string being searched must be in column one which means it
  238.       cannot be indented with spaces, tabs, etc.
  239.  
  240. New:  The updpsr() function has been enhanced for improved performance when
  241.       updating an .SPR file.  The larger the .SPR file generated, the more
  242.       increased performance from previous versions.
  243.  
  244. New:  The 3D effects driver 1.6 for GENSCRNX (3D.PRG) supports a RAISED clause
  245.       for any object.  Previous versions only supported raised lines and boxes.
  246.       The two ways to obtain raised beveled 3D effects are:
  247.       In the Setup snippet:
  248.       *:SCXDRV5 3D
  249.       *:ALL3D RAISED
  250.       or
  251.       In the Comment snippet of a object to have raised 3D beveling:
  252.       *:3D RAISED
  253.  
  254. New:  The 3D effects driver 1.6 for GENSCRNX (3D.PRG) will require GENSCRNX 1.7a
  255.       or later.  They will both be available simultaneously.
  256.  
  257. New:  The 3D effects driver 1.6 for GENSCRNX (3D.PRG) supports the REFRESH clause
  258.       for SAY objects when using *:3D for chisled 3D effects.  If the SAY object
  259.       is not set to refresh mode, the 3D box will overwrite the SAY object when
  260.       the screen is executed.
  261.  
  262. Fix:  GENSCRNX's thermometer properly displays and refreshs text that has
  263.       a length greater than the thermometer window.  This is only a
  264.       cosmetic fix to prevent leftover characters in the thermometer
  265.       window.
  266.  
  267.  
  268. ---------------------------------------------------------------------------
  269.  
  270.  
  271.                                  1.7
  272.                                 ------
  273.  
  274.  
  275. New:  GENSCRNX now supports multiple drivers per driver hook number to be
  276.       specified in the CONFIG.FP/CONFIG.FPW files.
  277.  
  278. New:  *:DRVOFF <file>
  279.       Specified in the Setup snippet to disable any driver setting that is
  280.       specified in the CONFIG.FP/CONFIG.FPW.  The number of *:DRVOFF
  281.       directives specified in the Setup snippet is unlimited and the
  282.       files included are retained for all screens in a screen set.  If
  283.       *:DRVOFF is specifed in the Setup snippet in a screen set, then all
  284.       screens following in that screen set will inherit the *:DRVOFF for
  285.       the specified driver.
  286.       Example:
  287.       If the 3D.PRG is specified in the CONFIG.FPW as _SCXDRV5="3D.PRG",
  288.       for the 3D driver to be executed globally for every screen, then
  289.       specifying *:DRVOFF 3D in the Setup snippet would disable the 3D
  290.       driver for that screen.
  291.  
  292. New:  GENSCRNX creates comments in the Setup snippet as that include the
  293.       the following information at compile time.
  294.       Example:
  295.       *           This program was preprocessed by GENSCRNX.
  296.       *--GENSCRNX 1.7
  297.       *--Screen    C:\SAMPLE\CUST2.SCX
  298.       *--Project   C:\SAMPLE\SAMPLE.PJX
  299.       *--FOXSCX    C:\FOXPRO25\FOXSCX.DBF
  300.       *--Platform  DOS
  301.       *--Time      08/25/93 20:29:46
  302.  
  303. New:  *:NOWCLAUSES <clause list>
  304.       Removes a list of clauses from the DEFINE WINDOW command of a screen.
  305.       Any list of clauses can be removed (except COLOR) by listing the name
  306.       of each clause separated by a space delimiter.
  307.  
  308.       Example:
  309.       Add following line in the Setup snippet to remove all FROM, TO, AT,
  310.       SIZE, FONT, and STYLE clauses will be removed from the DEFINE WINDOW
  311.       command:
  312.  
  313.       *:NOWCLAUSES FROM TO AT SIZE FONT STYLE
  314.  
  315.       To directly add any of the removed clauses, use GENSCRN's #WCLAUSES
  316.       directive.
  317.       
  318.       Example:
  319.       Add following lines in the Setup snippet to add a custom
  320.       AT <row,col> SIZE <height,width>:
  321.  
  322.       *:NOWCLAUSES AT SIZE
  323.       #WCLAUSES AT 1,1 SIZE 10,30
  324.  
  325.       or
  326.  
  327.       *:NOWCLAUSES AT SIZE
  328.       #WCLAUSES AT {{VPOS}},{{HPOS}} SIZE {{HEIGHT}},{{WIDTH}}
  329.  
  330.       Note:  The {{<expC>}} evaluates any expression and replace its result
  331.       as source code.  In the above example, the field names are referencing
  332.       the .SCX header record which contains the screen layout window data.
  333.  
  334.       Example:
  335.       Add following lines in the Setup snippet to add a custom
  336.       FONT <fontface> STYLE <fontstyle>:
  337.  
  338.       *:NOWCLAUSES FONT STYLE
  339.       #WCLAUSES FONT m.myfontface STYLE m.myfontstyl
  340.       
  341. New:  wordsearch() function in GENSCRNX now supports any memo field snippet
  342.       of the current record instead of only the Comment and Setup snippets.
  343.       wordsearch() is a function used by GENSCRNX drivers to locate
  344.       directives in any snippet of the current .SCX record.
  345.  
  346.       wordsearch(<expC1>, [[<expL1> | <expC2>], [expL2] ]
  347.  
  348.       <expC1>
  349.       The character expression that's searched for.
  350.  
  351.       <expL1> | <expC2>
  352.       The name of the memo field snippet to search of the current record.
  353.       If <expL1> is .F., the COMMENT memo field searched.
  354.       If <expL1> is .T., the SETUPCODE memo field searched.
  355.       If <expC2> is passed instead of <expL1>, the memo field <expC2>
  356.       memo field searched.
  357.      
  358.       <expL2>
  359.       If <expL1> is .F., search uses match words.
  360.       If <expL1> is .T., search does not use match words.
  361.  
  362.       Example:
  363.       m.str=wordsearch('*:3D')
  364.       The string m.str would contain CHR(0) if '*:3D' was not found in
  365.       the COMMENT snippet of the current record.
  366.       The string m.str would contain the characters following *:3D if
  367.       '*:3D' was found.  If the line contained '*:3D INSET', then
  368.       m.str would contain 'INSET'.
  369.  
  370.       m.str=wordsearch('#INSERT','VALID')
  371.       The string m.str would contain CHR(0) if '#INSERT' was not found in
  372.       the VALID snippet of the current record.
  373.       The string m.str would contain the characters following #INSERT if
  374.       '#INSERT' was found.  If the line contained '#INSERT BEEP.PRG', then
  375.       m.str would contain 'BEEP.PRG'.
  376.  
  377. Fix:  GENSCRNX forces SET POINT TO '.' throughout the duration of compiling
  378.       and returns SET POINT TO back to its original after completion.  This
  379.       was added for international support when SET POINT TO is not set to its
  380.       default value during development.
  381.  
  382. Fix:  GENSCRNX forces SET TRBETWEEN OFF throughout the duration of compiling
  383.       and returns SET TRBETWEEN TO back to its original after completion.
  384.  
  385. Fix:  GENSCRNX properly executes multiple drivers per driver hook number.
  386.  
  387. Fix:  GENSCRNX properly surpesses same file from being called more than one
  388.       per driver hook number.
  389.  
  390. Fix:  GENSCRNX properly pre and post processes all screens in a screen set
  391.       containing more than one screen.
  392.  
  393. Fix:  GENSCRNX properly executes the platform only check box in the
  394.       Generate dialog setting.
  395.  
  396. Fix:  GENSCRNX properly disables the *:OUTFILE <file> directive when the
  397.       screen is being generated from a project.  Since FoxPro's Project
  398.       Manager internally stores the expected output file specified in the'
  399.       .PJX file, the generated file must match this file name or the
  400.       project will halt building.
  401.  
  402. Fix:  GENSCRNX properly reads the CONFIG.FP/FPW files when tab characters
  403.       exist.
  404.  
  405. ---------------------------------------------------------------------------
  406.  
  407.  
  408.                                  1.6b
  409.                                 ------
  410.  
  411.  
  412. New:  *:GENSCRNX <file>
  413.       *:GENSCRNX is used to specify which program is used to generate 
  414.       screen code.  *:GENSCRNX overrides any _GENSCRNX in the
  415.       CONFIG.FP/CONFIG.FPW files.  If both *:GENSCRNX and _GENSCRNX are not
  416.       specified, the default setting is GENSCRN.PRG located in FoxPro's
  417.       start-up directory.  *:GENSCRNX can be used to specify a modified
  418.       GENSCRN needed for a particular screen rather than changing _GENSCRN
  419.       before generating a screen.
  420.  
  421. New:  *:DELOBJ
  422.       Delete screen object at compile time after pre-processing is complete.
  423.       Use *:DELOBJ for objects that need to reside in the .SCX database
  424.       during pre-processing but not in the .SPR file at run-time.
  425.  
  426. Fix:  The insertion of a file using #:INSERTTOP <file> when one platform
  427.       of source code is generated is placed after the .SPR file comment
  428.       heading rather than before.  This is not a functionality fix, but
  429.       rather a cosmetic fix.
  430.  
  431. ---------------------------------------------------------------------------
  432.  
  433.  
  434.                                  1.6a
  435.                                 ------
  436.  
  437.  
  438. New:  #:INSERTTOP <file>
  439.       Inserts file at top of .SPR code before DO CASE of cross-platform
  440.       block.  If #:INSERTTOP <file> appears more than once due to
  441.       cross-platform snippets containing the same code, the <file> will
  442.       only be inserted into the .SPR once.  This allows header files
  443.       containing #DEFINE directives to be inserted once per .SPR file
  444.       instead of one per platform inside the DO CASE block.
  445.  
  446. New:  The AUTORUN function can now be set by either adding AUTORUN=ON in
  447.       the CONFIG.FP/CONFIG.FPW file or setting a public variable
  448.        _AUTORUN='ON'.  Placing *:AUTORUN in the Setup snippet overrides
  449.        AUTORUN=OFF in CONFIG.FP/CONFIG.FPW.  Placing *:NOAUTORUN in the
  450.        Setup snippet overrides AUTORUN=ON in CONFIG.FP/CONFIG.FPW.
  451.  
  452. New:  The *:EVLTXT directive is automatic and is no longer a GENSCRNX
  453.       directive.  Evaluation of any {{<expC>}} command contained in memo
  454.       fields are automatically evaluated.
  455.  
  456. New:  *:PJXSET
  457.       Place in the Setup snippet before the *:PRG directive or any *:SET
  458.       directive to force the project information to have priority settings
  459.       when building the screen from a project.
  460.       Example:
  461.       If the following was in the Setup snippet of a screen:
  462.       *:SET MODAL ON
  463.       *:PJXSET
  464.       *:SET READCYCLE OFF
  465.       Then if the screen was generated from the Screen Builder, the READ
  466.       would contain the clauses MODAL and CYCLE no matter what the check
  467.       box settings were set to before selecting <Generate>.  If the screen
  468.       was generated from a project, the READ would contain MODAL no matter
  469.       what the settings were set to in the project but the CYCLE setting
  470.       would be set to whatever the project setting was set to.
  471.  
  472. New:  When using *:BASOBJ and snippet type is different between library
  473.       and screen surface, the procedure snippet is automatically placed
  474.       into the Cleanup snippet as a unique function and the function
  475.       name is added to the expression.
  476.  
  477. Fix:  *:IF works properly when used with *:INSSCX or *:INSOBJ directives.
  478.  
  479. Notes:  If #SECTION 1 is in the Setup snippet, then #:INSERT and #:INSERTTOP
  480.         must be placed after the #SECTION 1 statement.
  481.  
  482. Notes:  If COMPSPR=ON and DISPSPR=ON and an .ERR file is created forcing
  483.         GENSCRNX to display the .SPR and .ERR files, then the window with
  484.         the .SPR file must be closed before re-generating the .SCX when
  485.         SHARE.EXE is loaded to avoid a sharing violation error.
  486.  
  487. Notes:  GENSCRNX automatically searches the Setup snippet and Comment
  488.         snippets for any *: or {{ characters to determine of the .SCX
  489.         database needs pre-processing.  Therefore, if any {{<expC>}} need
  490.         to be evaluated and are not in the Setup snippet or Comment
  491.         snippets, they may not be evaluated properly.  If the GENSCRNX
  492.         error mode appears or pre-processing is not being performed when
  493.         it needs to be, simply place *: on any line in the Setup snippet
  494.         to force GENSCRNX to pre-process the .SCX database.
  495.  
  496. ---------------------------------------------------------------------------
  497.  
  498.  
  499.                                  1.6
  500.                                 ------
  501.  
  502.  
  503. New:  *:AUTORUN
  504.       Automatically releases screen after generation and executes generated
  505.       file.  *:AUTORUN is automatically disabled if either a compiled file
  506.       is not properly generated or a compile error was detected via the
  507.       COMPSPR=ON.
  508.  
  509. New:  *:COMPSPR
  510.       Overrides COMPSPR=OFF in CONFIG.FP/CONFIG.FPW.
  511.  
  512. New:  *:DISPSPR
  513.       Overrides DISPSPR=OFF in CONFIG.FP/CONFIG.FPW.
  514.  
  515. New:  *:ENDFNCT
  516.       Place at end of code that follows *:FUNCTION to mark ending of text.
  517.       *:ENDTXT is now used with *:INSTXT and is not used with *:FUNCTION.
  518.  
  519. New:  {{< <file> }}
  520.       Insert a file at compile time.  The < that follows the open braces is
  521.       the command that evaluates the contents of a file and inserts the file
  522.       at that location.  Note:  The inserted file may contain {{ <expC} }}
  523.       to be evaluated.
  524.       
  525. New:  {{ <expC1> :: [<expC2>] [:: <expC3>] }}
  526.       Insert code from a screen or library object.  <expC1> is the
  527.       library.object name just as in *:DEFOBJ, *:BASOBJ, etc.  Note if the
  528.       library name is not included, the object is searched for specified by
  529.       the *:INCLIB and *:BASLIB directives in the Setup snippet.  Also, if a
  530.       matching object is defined via the *:DEFOBJ directive on the surface
  531.       screen, that object will have proirity over any matching library
  532.       objects.  <expC2> is the string to be evaluated.  After the .SCX
  533.       record is matched, any string can be evaluated (ex. 'VALID' to return
  534.       the VALID snippet).  If <expC2> is null, the COMMENT contents will
  535.       be returned.  <expC3> is the option method name.  If <expC3> is
  536.       included, the text block specified by the matching method defined by
  537.       *:METHOD <name> ... *:ENDMTHD is returned.
  538.  
  539. New:  *:METHOD
  540.       Place at start of code to mark beginning of method code.
  541.  
  542. New:  *:ENDMTHD
  543.       Place at end of the code that follows *:METHOD to mark ending of
  544.       text.
  545.  
  546. Notes:  GENSCRNX default behavior does not add * Start of text and * End
  547.         of text messages for the *:INSTXT directive for enhanced
  548.         performance.  To add the commented text (as in version 1.5 and
  549.         earlier) either set OUTTXT=ON in the CONFIG.FP/CONFIG.FPW file or
  550.         set a public variable _OUTTXT='ON'.
  551.  
  552. ---------------------------------------------------------------------------
  553.  
  554.  
  555.                                  1.5
  556.                                 -----
  557.  
  558.  
  559. New:  #:SECTION 3
  560.       Used in Setup snippet (like #SECTION 1 | 2) to insert code after GETs
  561.       and before READ in the Screen Layout.  For an example, refer to
  562.       CUST5.SCX.
  563.  
  564.  
  565. New:  *:FUNCTION <function name>
  566.       Used in Comment snippet of object to automatically insert a function
  567.       into the Cleanup snippet.  Function needs to be written just like a
  568.       typical FoxPro UDF except that *:FUNCTION is used instead of FUNCTION.
  569.       GENSCRNX will automatically remove the *: from *:FUNCTION.  Only on
  570.       *:FUNCTION can exist per Comment snippet.
  571.  
  572.  
  573. New:  *:ENDTXT
  574.       Place at end of the code that follows *:INSTXT or *:FUNCTION to mark
  575.       ending of text to be inserted.
  576.  
  577.  
  578. New:  *:SAVESIZE
  579.       Used with *:DEFOBJs to force the SIZE information to be retrieved from
  580.       the library when the object is based in a screen.  For an example, refer
  581.       to the PHONE object in the MAIN library (LIBMAIN1.SCX).
  582.  
  583.  
  584. New:  *:SAVEPICT
  585.       Used with *:DEFOBJs to force the PICTURE information to be retrieved from
  586.       the library when the object is based in a screen.  For an example, refer
  587.       to the CONTROL_BAR_ object in the MAIN library (LIBMAIN1.SCX).
  588.       
  589.  
  590. New:  *:BASBEFORE
  591.       Used with *:DEFOBJs to force any inherited expressions or procedures to be
  592.       inserted before rathre than appended after to any screen surface code.
  593.  
  594.  
  595. New:  Referenced library objects can mix expressions and procedures.  The
  596.       expressions are automatically converted to IF/ENDIF blocks.  For example,
  597.       if a VALID object is in the library as an expression and in a screen
  598.       surface is inheriting that object but has a procedure VALID snippet, the
  599.       expression from the library will be converted to an IF/ENDIF block and
  600.       appended to the screen snippet (unless *:BASBEFORE which will force the
  601.       library expression to be inserted before).  If *:BASOBJ is used to
  602.       inherit snippet(s) from a library and the snippet type of the screen
  603.       object snippet is not equal to the snippet type of the library object
  604.       snippet, the snippet that is a function is automatically converted
  605.       into a procedure and appended to obtain the same functionality.
  606.  
  607.  
  608. New:  *:PRG
  609.       A Setup snippet directive called *:PRG that is used to automatically
  610.       change the .SPR extension to a .PRG extension and also add the
  611.       #NOREAD PLAIN directive to the Setup snippet.  The *:PRG directive
  612.       used in conjunction with screen objects with the *:INSTXT directive
  613.       will allow a .PRG file to be created that has no GETs, SAYs, or READ,
  614.       while the screen builder Object Order controls the order of the FoxPro
  615.       source code generated in the .PRG file.
  616.  
  617.  
  618. New:  Warning message defaults to cancel GENSCNRX
  619.         To override, set AUTOHALT=OFF in the CONFIG.FP/CONFIG.FPW
  620.  
  621.  
  622. New:  A function in GENSCRNX to allow a public variable or CONFIG.FP/
  623.       CONFIG.FPW setting to globally enable/disable drivers.
  624.       Example:  To disable the 3D driver globally:
  625.         1)  Place 3D=OFF in the CONFIG.FPW file
  626.         2)  Set a public variable _3D='OFF'
  627.         Note:  The public variable overrides the CONFIG.FPW setting
  628.  
  629.  
  630. Fix:  *:IF and *:INSTXT works properly for SAY(Refresh) objects.  Code is
  631.       inserted in both Screen Layout and Read Show sections.
  632.  
  633.  
  634. Fix:  Temporary .SCX, .PJX, and .MEM file names created during GENSCRNX are
  635.       unique instead of fixed for network compatibility.
  636.  
  637.  
  638. Notes:  The *:NOSIZE directive is ignored for EDIT objects
  639.  
  640. ---------------------------------------------------------------------------
  641.